From 2858512ebe4cc157e87904051d7cd0dbd6578a4a Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 19 Jun 2006 04:21:22 +0000 Subject: [PATCH] Add a GENERATE_PS capability. And use it here. 2006-06-19 Matthias Clasen * gtk/gtkprintjob.h: Add a GENERATE_PS capability. * gtk/gtkprintunixdialog.c (is_printer_active): And use it here. --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ gtk/gtkprintjob.h | 3 ++- gtk/gtkprintunixdialog.c | 17 ++++++++++++----- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 69affb2a02..66228eb203 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2006-06-19 Matthias Clasen + + * gtk/gtkprintjob.h: Add a GENERATE_PS capability. + * gtk/gtkprintunixdialog.c (is_printer_active): And use it here. + 2006-06-18 Matthias Clasen * tests/testnouiprint.c (main): Don't open a display connection. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 69affb2a02..66228eb203 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2006-06-19 Matthias Clasen + + * gtk/gtkprintjob.h: Add a GENERATE_PS capability. + * gtk/gtkprintunixdialog.c (is_printer_active): And use it here. + 2006-06-18 Matthias Clasen * tests/testnouiprint.c (main): Don't open a display connection. diff --git a/gtk/gtkprintjob.h b/gtk/gtkprintjob.h index 5273c856d0..ae71832a9a 100644 --- a/gtk/gtkprintjob.h +++ b/gtk/gtkprintjob.h @@ -41,7 +41,8 @@ typedef enum GTK_PRINT_CAPABILITY_COLLATE = 1 << 2, GTK_PRINT_CAPABILITY_REVERSE = 1 << 3, GTK_PRINT_CAPABILITY_SCALE = 1 << 4, - GTK_PRINT_CAPABILITY_GENERATE_PDF = 1 << 5 + GTK_PRINT_CAPABILITY_GENERATE_PDF = 1 << 5, + GTK_PRINT_CAPABILITY_GENERATE_PS = 1 << 6 } GtkPrintCapabilities; typedef struct _GtkPrintJob GtkPrintJob; diff --git a/gtk/gtkprintunixdialog.c b/gtk/gtkprintunixdialog.c index b81de906db..ee10433e06 100644 --- a/gtk/gtkprintunixdialog.c +++ b/gtk/gtkprintunixdialog.c @@ -573,10 +573,17 @@ is_printer_active (GtkTreeModel *model, result = gtk_printer_is_active (printer); - if (result) + if (result && + priv->manual_capabilities & (GTK_PRINT_CAPABILITY_GENERATE_PDF | + GTK_PRINT_CAPABILITY_GENERATE_PS)) { - if ((priv->manual_capabilities & GTK_PRINT_CAPABILITY_GENERATE_PDF) == 0) - result = gtk_printer_accepts_ps (printer); + /* Check that the printer can handle at least one of the data + * formats that the application supports. + */ + result = ((priv->manual_capabilities & GTK_PRINT_CAPABILITY_GENERATE_PDF) && + gtk_printer_accepts_pdf (printer)) || + ((priv->manual_capabilities & GTK_PRINT_CAPABILITY_GENERATE_PS) && + gtk_printer_accepts_ps (printer)); } g_object_unref (printer); @@ -1148,7 +1155,7 @@ clear_per_printer_ui (GtkPrintUnixDialog *dialog) gtk_container_foreach (GTK_CONTAINER (priv->advanced_vbox), (GtkCallback)gtk_widget_destroy, NULL); - extension_point_clear_children (priv->extension_point); + extension_point_clear_children (GTK_CONTAINER (priv->extension_point)); } static void @@ -1244,7 +1251,7 @@ selected_printer_changed (GtkTreeSelection *selection, { priv->printer_capabilities = _gtk_printer_get_capabilities (printer); priv->options = _gtk_printer_get_options (printer, priv->initial_settings, - priv->page_setup); + priv->page_setup); priv->options_changed_handler = g_signal_connect_swapped (priv->options, "changed", G_CALLBACK (options_changed_cb), dialog); -- 2.30.2